Named Backreferences RegExp-এ ব্যবহৃত হয়, যখন আপনি গ্রুপের নাম ব্যবহার করে পূর্ববর্তী গ্রুপের মান পুনরায় রেফারেন্স করতে চান। এটি traditional backreferences (যেমন \1, \2 ইত্যাদি) এর চেয়ে অনেক বেশি পাঠযোগ্য এবং স্পষ্ট হয়, কারণ এখানে আপনি গ্রুপের নাম ব্যবহার করতে পারেন। Named Backreferences আপনাকে কোডে আরও স্পষ্টভাবে বুঝতে সাহায্য করে যে কোন গ্রুপের মান পুনরায় ব্যবহার করা হচ্ছে।
Named Backreferences এর সিনট্যাক্স
Named Backreferences তৈরি করার জন্য, প্রথমে আপনাকে Named Capturing Groups ব্যবহার করে গ্রুপগুলো নাম দিতে হবে, তারপর সেই নাম ব্যবহার করে backreference করতে হবে। Named Backreferences এর সিনট্যাক্স এভাবে কাজ করে:
সিনট্যাক্স:
/(?<groupName>pattern)\k<groupName>/
এখানে:
(?<groupName>pattern)— এটি একটি Named Capturing Group, যেখানেgroupNameহল গ্রুপের নাম।\k<groupName>— এটি Named Backreference, যেখানেgroupNameহল গ্রুপের নাম এবং এটি প্রথম গ্রুপের সাথে পুনরাবৃত্তি খুঁজে বের করে।
Named Backreferences এর উদাহরণ
ধরা যাক, আমরা এমন একটি প্যাটার্ন তৈরি করতে চাই যেখানে দুটি শব্দ একই হবে, যেমন "hello hello":
let regex = /(?<word>hello) \k<word>/;
let str = "hello hello";
console.log(regex.test(str)); // true
এখানে:
(?<word>hello)একটি Named Capturing Group, যার নাম"word"এবং এটি"hello"মেলাবে।\k<word>একটি Named Backreference যা"word"নামক গ্রুপের মান"hello"এর পুনরাবৃত্তি খুঁজে বের করবে। ফলে, স্ট্রিং"hello hello"ম্যাচ হবে।
আরও Named Backreferences এর উদাহরণ
ধরা যাক, আমরা একটি স্ট্রিং থেকে দুটি সংখ্যার প্যাটার্ন তৈরি করতে চাই, এবং দুটি সংখ্যার পুনরাবৃত্তি খুঁজে বের করতে চাই:
let regex = /(?<first>\d{2})-(?<second>\d{2})-\k<first>-\k<second>/;
let str = "12-34-12-34";
console.log(regex.test(str)); // true
এখানে:
(?<first>\d{2})এবং(?<second>\d{2})দুটি Named Capturing Group, যার মাধ্যমে প্রথম দুটি সংখ্যা (যেমন"12"এবং"34") গ্রুপ করা হচ্ছে।\k<first>এবং\k<second>হল Named Backreferences, যা প্রথম দুটি সংখ্যার পুনরাবৃত্তি খুঁজে বের করবে এবং"12-34-12-34"স্ট্রিংটি মেলাবে।
Named Backreferences এবং সাধারণ Backreferences এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Named Backreferences | General Backreferences |
|---|---|---|
| রেফারেন্সের সিনট্যাক্স | \k<groupName> | \n (গ্রুপের ইনডেক্স নম্বর) |
| কোডের পাঠযোগ্যতা | আরও স্পষ্ট এবং পাঠযোগ্য | কম পাঠযোগ্য (গ্রুপ ইনডেক্স নম্বর ব্যবহার করতে হয়) |
| ব্যবহার | গ্রুপের নাম ব্যবহার করে | ইনডেক্স ব্যবহার করে |
| উদাহরণ | \k<word> | \1 |
সারাংশ
Named Backreferences RegExp-এ ব্যবহার করা হয় পূর্ববর্তী Named Capturing Group এর মান পুনরায় রেফারেন্স করতে। এটি সাধারণ backreferences থেকে অনেক বেশি পাঠযোগ্য এবং স্পষ্ট, কারণ আপনি গ্রুপের নাম ব্যবহার করতে পারেন। Named Backreferences ব্যবহার করে আপনি কোডে আরও পরিষ্কারভাবে বুঝতে পারেন যে কোন গ্রুপের মান পুনরায় ব্যবহার করা হচ্ছে। এটি জটিল প্যাটার্নের জন্য খুবই কার্যকর, বিশেষ করে যখন আপনার অনেক গ্রুপ থাকে এবং সেগুলোর উদ্দেশ্য বুঝতে সাহায্য করতে নাম দেওয়া হয়।
Read more